// let i = 0
// while (i < 10000000000) {
// 	i++
// }
// console.log(i)
// let a = new Promise((reslove) => {
// 	console.log('aaa')
// 	reslove(222)
// })
// a.then((x) => {
// 	console.log(x)
// })
// setTimeout(function () {
// 	var a = 'hello '
// 	setTimeout(() => {
// 		var b = 'lagou '
// 		setTimeout(() => {
// 			var c = 'I love U'
// 			console.log(a + b + c)
// 		}, 10)
// 	}, 10)
// }, 10)
// let promise=new Promise((resolve,reject)=>{
//     var a='hello '
//     resolve(a)
// })
// promise.then((a)=>{a+b
//     var b='lagou '
//     return a+b
//  }).then(
//      (res)=>{
//          var c='I love U'
//          console.log(res +c)
//      }
//  )
const fp = require('lodash/fp');
const cars = [{
    name: 'Ferrari FF',
    horsepower: 660,
    dollar_value: 700000,
    in_stock: true
}, {
    name: 'Spyker C12 Zagato', 
    horsepower: 650,
    dollar_value: 648000,
    in_stock: false
}, {
    name: 'Jaguar XHR-S',
    horsepower: 550,
    dollar_value: 132000,
    in_stock: false
}, {
    name: 'Audi R8',
    horsepower: 525,
    dollar_value: 114200,
    in_stock: false
}, {
    name: 'Aston Martin One-77',
    horsepower: 750,
    dollar_value: 1850000,
    in_stock: true
}, {
    name: 'Pagani Huayra',
    horsepower: 700,
    dollar_value: 1300000,
    in_stock: false
}, ]
const last_in_stock=fp.flowRight(fp.prop('in_stock'),fp.last);
// console.log(last_in_stock(cars))
const first_name=fp.flowRight(fp.prop('name'),fp.first)
// console.log(first_name(cars))
let _average=function(xs){
    return fp.reduce(fp.add,0,xs)/xs.length
}
let averageDollarValue=fp.flowRight(_average,(cars)=> cars.map(car=> car.dollar_value)
)
// console.log(averageDollarValue(cars))
const sanitizeNames=fp.flowRight(v=>[v],fp.replace(/\W+/g,'_'),fp.lowerCase)
console.log(sanitizeNames(['Hello world']))